1. Technical Field
The present invention relates to web service composition, and more particularly, to a method and system for message-oriented semantic web service composition based on artificial intelligence planning.
2. Discussion of the Related Art
A web service is a software system designed to support interoperable Machine-to-Machine interaction over a network. Web services are frequently Web application programming interfaces (APIs) that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services.
An important class of web services consists of those that either do data processing or provide information, i.e., they take in messages containing input data or information requests, process them in some manner, and produce messages containing output data or results.
A challenge for software developers is to allow automatic composition of workflows (made up of web services) that process, transform or analyze data to produce some desired information. In such workflows, it is necessary to have expressive models of messages and of data processing capabilities of web services to compose services that are semantically compatible and to create workflows that produce the desired information.
However, many existing service models like OWL-S (as described in Martin et al, D. 2004. OWL-S: Semantic markup for web services. In W3C Submission) do not allow expressions with variables in describing inputs and outputs. For example, OWL-S describes inputs and outputs using concepts in an ontology. Similarly to OWL-S, SA-WSDL (as described in Akkiraju et al, R. 2005. Web service semantics—WSDL-S. W3C Submission), which allows linking semantic annotations to WSDL files, associates inputs and outputs with concepts in an ontology.
During automatic composition of workflows, a planner is used to decide which kinds of messages can be given as input to a web service and how it can construct these messages from other messages that have been produced by other web services in a partial plan. A challenge with planning concerns the use of description logic reasoning for checking if two components car be connected. For example, since a planner needs to perform a large number of such checks while building a plan, this results in a large number of calls to a reasoner during plan-building.